$(document).ready(function() {
    var firstGeneration = true;
    // Ajout des attributs et valeurs sélectionnés
    $("#addValue").click(function() {
        if(firstGeneration) {
            var attributs = "";
            if($("#valeurs option:selected").size() == 0) {
                attributs = "<b class='error_message'>Veuillez saisir des valeurs</b>";
            } else {
                var parent = $("#valeurs option:selected:first").attr("data-parent");
                attributs += "<table id='tableCombinaisons' class='table'>";
                attributs += "<tr id='val-" + $("#valeurs option:selected:first").attr("data-parent") + "' class='th'><th>" + parent + "</th><th>Impacte sur le prix</th></tr>";
                $("#valeurs option:selected").each(function(index) {
//                    console.log($(this).val() + ":" + $(this).attr("data-parent") + ", " + parent);
                    // Si le parent n'est pas pareil
                    // console.log("Parent : " + $(this).attr("data-parent") + ", Current : " + parent);
                    if(parent == $(this).attr("data-parent")) {
                        attributs += "<tr id='" + $(this).val() + "'><td>" + $(this).text() + "</td><td><input type='text' name='" + $(this).attr("data-parent") + "[" + $(this).val() + "][prix]' value='0'></td><td><span class='icon-remove cursor-pointer remove-valeur' title='Supprimé'></span></td></tr>";
                        // console.log($(this).attr("data-parent"));
                        parent = $(this).attr("data-parent");
                    } else {
                        parent = $(this).attr("data-parent");
                        // $("#results").append("</table>");
                        // $("#results").append("<table>");
                        attributs += "<tr id='val-" + $(this).attr("data-parent") + "' class='th'><th>" + parent + "</th><th>Impacte sur le prix</th></tr>";
                        attributs += "<tr id='" + $(this).val() + "'><td>" + $(this).text() + "</td><td><input type='text' name='" + $(this).attr("data-parent") + "[" + $(this).val() + "][prix]' value='0'></td><td><span class='icon-remove cursor-pointer remove-valeur' title='Supprimé'></span></td></tr>";
                    }
                });
                attributs += "<th><td colspan='2'><button class='btn btn-primary btn-activer'><i class='icon-white icon-ok'></i> Générer les déclinaisons</button></td></th></table>";
                firstGeneration = false;
            }
            $("#results").html(attributs);
        } else {
            if($("#valeurs option:selected").size() == 0) {
                attributs = "<b class='error_message'>Veuillez saisir des valeurs</b>";
            } else {
                
                var alreadyDisplayed = [];
                // Parcours des éléments sélectionnés
                $("#valeurs option:selected").each(function(index) {
                    var attributSelected = $(this);
                    $("#tableCombinaisons").children().children("tr").each(function(index) {
                        if($(this).attr('id') == attributSelected.val()) {
                            // console.log($(this).attr("id"));
                            alreadyDisplayed.push($(this).attr("id"));
                        }
                    });
                });
//                console.log(alreadyDisplayed);
                
                var groupeAttributAlreadyDisplayed = [];
                $("#tableCombinaisons").children().children("tr").each(function(index) {
                    if($(this).hasClass("th"))
                        groupeAttributAlreadyDisplayed.push($(this).attr("id").replace("val-", ""));
                });
                
                // Parcours des éléments sélectionnés
                $("#valeurs option:selected").each(function(index) {
                    var itemSelected = $(this);
                    // console.log($.inArray($(this).val(), alreadyDisplayed));
                    if($.inArray($(this).val(), alreadyDisplayed) != -1) {
//                        console.log("deja affiché" + $(this).val());
                    } else {
                        var trValider = $('#results tr:last');
                        $('#tableCombinaisons tr:last').remove();
//                        console.log(itemSelected.attr("data-parent") + "in " + groupeAttributAlreadyDisplayed);
                        if($.inArray(itemSelected.attr("data-parent"), groupeAttributAlreadyDisplayed) == -1) {
                            $("#tableCombinaisons").append("<tr id='val-" + itemSelected.attr("data-parent") + "' class='th'><th>" + itemSelected.attr("data-parent") + "</th><th>Impacte sur le prix</th></tr>");
//                            console.log('Ajouter th');
//                            $("#tableCombinaisons").append("<tr id='" + itemSelected.val() + "'><td>" + itemSelected.text() + "</td><td><input type='text' name='" + itemSelected.attr("data-parent") + "[" + itemSelected.val() + "][prix]' value='0'></td></tr>")
                        } else {
//                            console.log('Insérer dans th');
                        }
                        
                        $("#tableCombinaisons").children().children("tr").each(function(index) {
//                            console.log($(this));
                            if($(this).attr('id') == "val-" + itemSelected.attr("data-parent")) {
//                                console.log('ajouter');
                                $(this).after("<tr id='" + itemSelected.val() + "'><td>" + itemSelected.text() + "</td><td><input type='text' name='" + itemSelected.attr("data-parent") + "[" + itemSelected.val() + "][prix]' value='0'></td><td><span class='icon-remove cursor-pointer remove-valeur' title='Supprimé'></span></td></tr>");
                            }
                        });
                        
                        $("#tableCombinaisons").append(trValider);
//                        console.log("Ajouté");
                    }
                });
            }
        }
        });
    // Suppression de sattributs et valeurs sélectionnés
    $("#removeValue").click(function() {
        /*
        var tmpAttribut = "";
        $("#valeurs option:selected").each(function(index) {
            tmpAttribut = $(this).val();
            $("#table-attributs tr").each(function(index) {
                if($(this).attr("id") == tmpAttribut) {
                    $(this).remove();
                }
            });
        });
        
        // Suppression des Attributs sans Valeurs
        $("#table-attributs .th").each(function(index) {
            if($(this).next().children(":first").attr("nodeName") == "TH") {
                $(this).remove();
            }
        });
        */
       
       if(confirm("Vider le tableau de valeurs ?")) {
           $('#results').html('');
           firstGeneration = true;
        }
    });
    
    $('.remove-valeur').live("click", function() {
        $previous = $(this).parent().parent().prev();
        $(this).parent().parent().remove();
        
        // S'il y a deux th à la suite
        if($previous.hasClass('th')) {
            console.log($previous);
            if($previous.next().hasClass('th') || $('#tableCombinaisons tr:last').prev().attr('id') == $previous.attr('id'))
                $previous.remove();
        }
    });
    
});
